Skip to main content
POST
Create a new session on this device

Authorizations

X-Api-Key
string
header
required

Workspace API key, created in the dashboard under Settings → API Keys.

Headers

Idempotency-Key
string

Caller-provided key for safe retries. The same key in the same workspace yields the same run id, and a duplicate POST within the retention window returns the original run instead of starting a second one.

Maximum string length: 256

Path Parameters

workspaceId
string<uuid>
required

Workspace UUID. Caller must have access.

deviceId
string
required

Device id (paired into the workspace).

Body

application/json
prompt
string
required
Required string length: 1 - 8192
maxDurationSecs
integer

Optional cap on the run's duration, in seconds. The server applies its own upper bound.

Required range: x >= 1
recording
boolean
default:false

Record a video of the run.

stealthInput
boolean

Run every device action of this session in human-like (stealth) mode: jittered tap timing, curved swipe paths and a per-key typing delay. Refused at create with 412 unsupported_stealth_input when the phone's agent does not support it, so a run never starts only to fail on its first tap.

schema
object | null
app
string | null
secrets
string[]

Saved workspace secrets this run may use, by reference: <item_slug>.<field>, for example gmail.password. Values are never sent in the request; the agent types them on the phone without the model ever seeing them. Every name must already be saved in the workspace (GET /v1/workspaces/{workspaceId}/vault lists them), otherwise the request fails with 422 unknown_secret. Omitted: the run may use every secret saved in the workspace. []: none.

Maximum array length: 50
Maximum string length: 256
Pattern: ^[a-z0-9_-]+\.[a-z0-9_-]+$
model
string | null

Provider-qualified model id for this run. Omitted, null or auto runs the default model, deepseek/deepseek-flash.

idempotencyKey
string

Key for retry safety. The Idempotency-Key header takes precedence over this body field.

Maximum string length: 256

Response

Session queued

id
string
required
status
enum<string>
required
Available options:
queued
deviceId
string
required
workspaceId
string<uuid>
required
invocationId
string