Resources & Endpoints
This is a high-level map of the control-plane REST API, grouped by resource. All
paths are under /api/v1 unless noted. For the authoritative, always-current
contract, fetch the live OpenAPI schema from GET /-/openapi/schema.
The official TypeScript SDK and the nullctl CLI are generated from / built
against this same API, so prefer them when you can and drop to raw HTTP for custom
needs.
Emulators
The core device resource. See Cloud Emulators.
| Method & path | Description |
|---|---|
GET /emulators | List your emulators |
POST /emulators | Deploy an emulator from a snapshot |
GET /emulators/{id} | Get live device state |
DELETE /emulators/{id} | Tear down the device |
GET /emulators/{id}/status | Lifecycle status (provisioning → running → …) |
GET /emulators/{id}/logs | Stream logs (Server-Sent Events) |
POST /emulators/{id}/restart | Rolling restart |
PUT /emulators/{id}/snapshot | Swap the underlying snapshot |
GET /emulators/{id}/adb/proxy | ADB bridge (WebSocket) |
Snapshots
Disk images that boot emulators and warm builds. See Snapshots.
| Method & path | Description |
|---|---|
GET /snapshots | List snapshots you can view |
GET /snapshots/{name} | Snapshot detail |
GET /snapshots/tree | Parent/child snapshot tree |
GET /snapshots/diskpool | Storage-pool capacity |
DELETE /snapshots/{name} | Delete a snapshot |
POST /snapshots/{name}/promote-root | Protect as a retention root |
Backups & restores
Tenant-scoped volume backup and restore.
| Method & path | Description |
|---|---|
GET /backups, POST /backups, GET /backups/{podName} | Manage backups |
POST /restores, GET /restores/{podName} | Manage restores |
Identity & permissions
See Identity & Access.
| Method & path | Description |
|---|---|
GET /whoami | Your identity |
GET /permissions/me | Your full permission summary |
GET|POST /permissions/check | Check one or many permissions |
GET /users, PUT /users/{id} | Manage users |
GET /users/{id}/vcs-credentials | VCS credentials |
Tenancy
See Multi-Tenancy.
| Method & path | Description |
|---|---|
GET|POST /tenants, GET|PUT|DELETE /tenants/{id} | Manage tenants |
GET|POST|DELETE /tenants/{id}/members[/{userId}] | Tenant membership |
GET|POST /tenants/{id}/groups, GET|PUT|DELETE /groups/{id} | Groups |
.../groups/{id}/members, .../groups/{id}/grants | Group members & access grants |
GET|POST|DELETE /admins[/{subject}] | Global admins |
Onboarding & VCS integration
See Onboarding.
| Method & path | Description |
|---|---|
GET /tenants/{id}/onboarding/status | Onboarding progress |
POST /tenants/{id}/bootstrap | Provision tenant integrations |
GET /tenants/{id}/bootstrap/operations[/{opId}] | Track bootstrap ops |
*/tenants/{id}/vcs-providers[/{vcsId}] | Manage VCS providers |
GET /tenants/{id}/gitlab/groups, .../gitlab/projects | Browse GitLab |
Fleet model
Model devices beyond emulators. See Key Concepts.
| Resource | Endpoints |
|---|---|
| Target types | GET|POST /target_types, GET|PUT|DELETE /target_types/{id} |
| Targets | GET|POST /targets, GET|PUT|DELETE /targets/{id} |
| Endpoints | GET|POST /endpoints, GET|PUT|DELETE /endpoints/{id} |
| Applications | GET|POST /applications, plus /applications/{id}/targets |
Configuration
| Method & path | Description |
|---|---|
GET /config/infra/ice | Dynamic TURN/ICE credentials for WebRTC |
Health & metadata (/-/)
| Method & path | Description |
|---|---|
GET /-/alivez, GET /-/readyz | Liveness / readiness (unauthenticated) |
GET /-/version | Build version |
GET /-/openapi/schema | Live OpenAPI schema (YAML or JSON) |
Vehicle data (gRPC)
VHAL is served over gRPC (not REST), on the gRPC subdomain of your control-plane host, targeting a device via a header that identifies the emulator. It exposes the standard Android Automotive vehicle operations (get and set values, subscribe, get all property config, health). See Working with VHAL.
Next steps
- API Introduction
- Authentication
- Fetch the live schema:
GET /-/openapi/schema