Skip to main content

Overview

Per-user; requires Authorization: Bearer nv_sk_…. Naïve owns the Mobilerun operator key — your agents never hold one. Each tenant is isolated by Naïve: every phone and task is recorded against (company, user), and all list/by-id operations (including the wildcard call for device/task-scoped paths) are scoped to the caller (404 cross-tenant). Billing: phones are billed per minute from your credits (NAIVE_MOBILE_CREDITS_PER_MINUTE, default 3 credits/device-minute) and agent tasks are billed per step taken (NAIVE_MOBILE_CREDITS_PER_TASK_STEP, default 0.4 credits/step; the steps budget, default 25, is reserved then reconciled) — the only funding models. POST /v1/mobile/devices provisions the device immediately and the meter runs until DELETE /v1/mobile/devices/:idthere is no upstream auto-stop (credit exhaustion or max-runtime auto-terminates the device). Phones default to dedicated_premium_device (the minute-billed cloud phone). Routes are available both company-scoped (/v1/mobile/..., acting as the operator’s default user) and per-user (/v1/users/:user_id/mobile/...). Gated by the mobile primitive in the user’s AccountKit. Mobilerun usage is billed in credits.
POST /v1/mobile/devices (provision), the device lifecycle routes, POST /v1/mobile/tasks (run), POST /v1/mobile/tasks/:id/stop, POST /v1/mobile/apps (upload), and a mutating POST /v1/mobile/call are approval-gated by default. An agent (API-key) call may return 202 { "status": "pending_approval", "approval_id" }; a human approves it via Approvals and the action runs on replay.

Endpoints

Wildcard search / call

GET /v1/mobile/methods returns Mobilerun’s API tags plus matching operations:
POST /v1/mobile/call executes one by id, substituting path params and forwarding query/body:
Read operations execute immediately; mutating ones are approval-gated. Any {deviceId} or {task_id} path is verified to belong to the calling tenant. Account-global operations (no device/task in the path — proxies, credentials, secrets, flows, and the unscoped device/task lists) are refused for tenant sub-users by default; the operator’s own default user can always call them, and MOBILERUN_ALLOW_GLOBAL_CALLS opens them for everyone. Use the curated devices/tasks/apps methods for scoped list/create flows. See the Mobile guide and the SDK sub-client.