For Agents
Reserve and control real Android devices in a Smartphone Test Farm pool — list devices, claim them for a user, and open or close remote-control sessions.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Smartphone Test Farm, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Smartphone Test Farm API.
List all devices attached to the STF cluster with their model, serial, and availability state
Fetch detailed metadata for a single device by serial including OS version and battery
Reserve a specific device for the authenticated user via POST /user/devices
GET STARTED
Use for: Find an idle Android device in the test farm, Reserve a Pixel 6 for my automation run, Get the serial of every device that is currently online, Release a device I no longer need back to the pool
Not supported: Does not handle iOS devices, app distribution, or test result reporting — use for Android device reservation and remote control only.
Smartphone Test Farm (STF) is an open-source platform for remotely controlling and managing real Android smartphones from a browser. The REST API exposes operations for listing connected devices, fetching device details, managing user access tokens, reserving devices for a user, and opening or closing remote-control sessions. STF is widely deployed inside QA labs and mobile build farms where teams need shared access to a pool of physical handsets for manual testing, automation hooks, and reproducibility checks. The API is the same surface STF's web UI uses, so it covers the full lifecycle of a remote test session.
Release a reserved device back to the pool with DELETE /user/devices/{serial}
Open a remote-control session on a device using POST /user/devices/{serial}/remoteConnect
Tear down a remote-control session with DELETE /user/devices/{serial}/remoteConnect
Inspect the authenticated user's profile and active access tokens
Patterns agents use Smartphone Test Farm API for, with concrete tasks.
★ On-Demand Device Reservation for CI
A continuous integration pipeline running mobile UI tests can call POST /user/devices to claim a free device before kicking off Espresso or Appium tests, then DELETE /user/devices/{serial} when the run completes. The API enforces single-user ownership while held, so parallel CI jobs never collide on the same handset. STF returns the device serial that ADB can then connect to.
Call GET /devices to find a device where present=true and using=false, then POST /user/devices with that serial to reserve it
Manual QA Device Browser
Build a custom QA portal listing every device in the STF cluster with current usage status. The /devices endpoint returns the full inventory with model, OS version, battery, and current user. Combine with /user/devices/{serial}/remoteConnect to open a screen-mirroring session for the QA engineer directly from the portal, avoiding the need to log into the STF UI separately.
GET /devices and render a table of devices grouped by model with a 'connect' button that calls POST /user/devices/{serial}/remoteConnect
Idle Device Reaper
Operations teams running large device farms need to reclaim stale reservations. A scheduled job can list /user/devices to find handsets the current bot user holds, check the last-used timestamp, and release any past a threshold by calling DELETE /user/devices/{serial}. This keeps device utilization high without manual intervention.
GET /user/devices, identify devices where the lastUsed timestamp is older than 1 hour, and call DELETE /user/devices/{serial} on each
AI Agent Mobile Test Orchestrator
An AI agent that authors and runs Android UI tests can use STF through Jentic to acquire a device, run the test suite, and release the handset, all without managing STF auth tokens directly. Jentic resolves the agent's intent ('reserve a device matching these criteria') to the right /devices and /user/devices calls and returns the serial the agent's test runner needs.
Through Jentic, search 'reserve a smartphone for testing', filter for an Android 13 device, and return the assigned serial
10 endpoints — smartphone test farm (stf) is an open-source platform for remotely controlling and managing real android smartphones from a browser.
METHOD
PATH
DESCRIPTION
/devices
List all devices in the STF cluster
/devices/{serial}
Get details for a specific device
/user/devices
List devices reserved by the current user
/user/devices
Reserve a device for the current user
/user/devices/{serial}
Release a reserved device
/user/devices/{serial}/remoteConnect
Open a remote-control session
/user/devices/{serial}/remoteConnect
Close a remote-control session
/devices
List all devices in the STF cluster
/devices/{serial}
Get details for a specific device
/user/devices
List devices reserved by the current user
/user/devices
Reserve a device for the current user
/user/devices/{serial}
Release a reserved device
Three things that make agents converge on Jentic-routed access.
Credential isolation
STF access tokens are stored encrypted in the Jentic vault. Agents authorize against STF through Jentic without seeing the raw token, and tokens can be rotated centrally without touching agent code.
Intent-based discovery
Agents search Jentic with intents like 'reserve an android device' or 'open remote control session' and Jentic returns the matching STF operation with its parameter schema.
Time to first call
Direct STF integration: a few hours to wire token auth, device polling, and reservation lifecycle. Through Jentic: under 30 minutes — search, load, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Smartphone Test Farm API through Jentic.
What authentication does the Smartphone Test Farm API use?
STF uses an access token sent in the authorization header. Generate a token from the STF web UI under your user settings. Through Jentic, the token is stored encrypted and injected at request time so it never appears in agent logs or prompts.
Can I reserve a specific device by model with the Smartphone Test Farm API?
Not by model directly — POST /user/devices takes a serial. Call GET /devices first, filter the response by model, present, and using fields, then reserve the matching serial. STF holds reservations until you call DELETE /user/devices/{serial}.
What are the rate limits for the Smartphone Test Farm API?
STF is self-hosted in most deployments, so rate limits depend on the operator's nginx or API gateway configuration. The reference STF deployment does not enforce hard limits at the API layer; check with your cluster admin for any organisational caps.
How do I open a remote-control session on a reserved device through Jentic?
After reserving a device with POST /user/devices, search Jentic for 'open remote control session smartphone test farm', load the POST /user/devices/{serial}/remoteConnect schema, and execute with the serial. Jentic returns the WebSocket URL for the screen mirror session.
Does the Smartphone Test Farm API support iOS devices?
STF v2.x is Android-only — it relies on ADB for device control. For iOS device farms, look at services like BrowserStack or Sauce Labs which expose their own APIs for iOS pools.
Can two users reserve the same device at the same time?
No — STF enforces a single-owner reservation model. POST /user/devices on a device already reserved by another user will fail. The /devices response includes the using.email field so you can see who currently holds it before attempting to reserve.
/user/devices/{serial}/remoteConnect
Open a remote-control session
/user/devices/{serial}/remoteConnect
Close a remote-control session