Audience: SDK users who deploy instances (cloud desktops, Android
runtimes, or bring-your-own-device phones) and need to read their
state, list the agents that run on them, and discover what a backing
device actually is.
/api/v1,
base URL https://openapi.beeos.ai) and authenticated with an oag_
User API Key — see Authentication & API Keys for
how to obtain one. All responses use the standard { success, data }
envelope.
1. Get an instance
GET /api/v1/instances/{id} returns the full InstanceDataDTO for one
instance you own. This is your starting point for everything else: it
tells you what the instance is (osType), whether it’s running
(status), whether it’s reachable (connectivity), and where to
reach it (endpoint).
Key fields
connectivity (and connectivityReason) describe the live link to
the backing device, while status describes the lifecycle the
control plane intends. Always check both before issuing control calls —
a running + offline instance will reject taps/clicks.2. List your instances
GET /api/v1/instances returns a paginated array of InstanceDataDTO,
plus a total count, so you can build dashboards or pick an instance to
act on.
Pagination
total is the unfiltered-by-page count for the current filter set,
so paginate until page * pageSize >= total.
Filters
All filters combine withAND. Omit any you don’t need.
3. List agents on an instance
An instance hosts one or more agents.GET /api/v1/agents lists the
agents you own; pass instance_id to scope the list to a single
instance.
Query parameters
AgentDTO fields
4. BYOD device info
When an instance is backed by a user-provided device (bring your own device, e.g. a phone you registered), you can read the device’s registration / static metadata with:DeviceInfoDTO fields
width / height / density here are the registered geometry from
when the device was enrolled. They are the device’s static spec — not
necessarily the live foreground geometry at request time (an Android
phone can rotate, fold, or change resolution). For the live geometry
use /mobile — see below.5. device/info vs /mobile — which one?
There are two ways to learn about an Android/mobile instance, and they answer different questions:
Rule of thumb:
- Identify / inventory a device (“this is what it is / what config
/ what it can do”) →
device/info. - Control it live (“drive it now / current screen geometry”) →
/mobile(see theControlInfoschema and the/mobile/*action endpoints in the API Reference tab).
6. Two kinds of capabilities
The word “capabilities” appears on both the instance and the device,
and they are semantically distinct — don’t conflate them:
When the instance has no declared capabilities, the instance-level field
is omitted entirely (not emitted as
null).
See also
- Calling Agents — invoke the agents you listed in §3
- Choosing a Protocol — OpenAPI vs A2A vs MCP for talking to agents
- Authentication & API Keys —
oag_keys and the authorization model - Error Reference — every wire
codethese endpoints can return - OpenAPI contract
— the full
instances,agents,mobile, anddevice/infooperation contracts (also rendered in the API Reference tab)