Skip to main content

API reference

This page is generated from the code and corresponds to the published routes.

Backward compatibility is guaranteed for /v1/.... /api/... is used by the web client and may change at any time. Do not build integrations against it.

Devices and sessions​

MethodPathScopeDescription
POST/v1/device/{did}/autorenewdeviceEnable or disable automatic renewal.
GET/v1/device/{did}/proxy—Current egress status. If the upstream status cannot be read, return the error without inventing a status.
POST/v1/device/{did}/proxydeviceApply the proxy and align device identity settings. Restarts the device.
DELETE/v1/device/{did}/proxydeviceRemove the egress proxy and restore IP/SIM/GPS/time zone settings. Also restarts the device.
POST/v1/device/{did}/proxy/checkdeviceCheck the proxy before applying it. Does not change any device state and can be repeated.
GET/v1/device/{did}/renew—
POST/v1/device/{did}/renewbillingRenew the device. As with an order, deduct the balance first and refund it if renewal fails.
GET/v1/device/{did}/selfcheck—
POST/v1/device/{did}/sessionstreamIssue a streaming session. The ownership check in owned_device must pass before issuance.
DELETE/v1/device/{did}/sessionstream
GET/v1/devices—
POST/v1/previewsstreamRetrieve preview images in a batch. A low-cost way to display a device grid.
POST/v1/sessionsstream

Device operations​

MethodPathScopeDescription
POST/v1/actinputRun a single action using a selector or coordinates. One device, asynchronous; returns task_id.
GET/v1/act/{task_id}inputRetrieve the result of a single action.
POST/v1/injectinputInject data into an instance: SMS records, call logs and contacts.
POST/v1/inputinputControl a device without streaming: tap, swipe, long press, key presses and text input.
POST/v1/uiinputRetrieve the interactive node tree for the device's current screen. One device, synchronous.

Automation​

MethodPathScopeDescription
POST/v1/automation/dispatchinputDispatch workflow tasks in a batch.
DELETE/v1/automation/schedule/{sid}inputDelete a scheduled task.
POST/v1/automation/schedule/{sid}/toggleinputEnable or disable a scheduled task.
GET/v1/automation/schedules—List scheduled tasks.
POST/v1/automation/schedulesinputCreate scheduled tasks. One task is created per device, so the response is an array.
GET/v1/automation/scripts—List workflow templates. Read-only; uses the read tier.
POST/v1/automation/task/{task_id}/cancelinputCancel a pending or running task.
GET/v1/automation/task/{task_id}/logs—Step-level logs for a task.
GET/v1/automation/tasks—List workflow tasks.

Catalog and provisioning​

MethodPathScopeDescription
GET/v1/catalog—Sales catalog. Returns only our selling prices, not upstream costs.
GET/v1/orders—
POST/v1/ordersbilling
POST/v1/orders/{oid}/claimbillingClaim the instance associated with an order.

Account​

MethodPathScopeDescription
GET/v1/client/me—

Scopes​

Keys are issued per application, and scopes belong to the application. Endpoints without a listed scope require only a valid key.

ScopeMeaning
device_readView devices: read devices and tasks, no changes allowed
streamView the screen: issue streaming sessions, including batch requests
deviceConfigure devices: egress proxy and automatic renewal
inputOperate devices: tap, swipe, key presses, text input and data injection
billingSpend balance: provision new devices and renew devices