---
title: "Create an Android instance"
method: POST
path: "/v1/android_instances"
---

# Create an Android instance

`POST /v1/android_instances`

## Query parameters

- `wait` boolean
- `reuseIfExists` boolean

## Request body

- AndroidInstanceCreate
  - `metadata` object
    - `displayName` string
    - `labels` object
  - `spec` object
    - `clues` object[]
      - `kind` 'ClientIP' | 'OSVersion', required
      - `clientIp` string
      - `osVersion` string — The major version of Android, e.g. "13", "14" or "15".
    - `region` string — Where the instance will be created. If not given, the region is decided based on scheduling clues (client IP) and availability. A region is a preference, not a hard pin: the request always overflows to every other available region, ordered by proximity, when the preferred ones are full. Accepted values: * A specific region name (e.g. "us-west1"). It is tried first, then the remaining regions in order of proximity to it. Scheduling clues (client IP) are ignored when a region is given. * A region group name (e.g. "us", "eu"). Its member regions are tried first in their listed order, then the remaining regions by proximity to the first member. * A pipe-separated, ordered list of regions (e.g. "us-east1|us-west1"). Those are tried first in the given order, then the remaining regions by proximity to the first.
    - `inactivityTimeout` string, duration — After how many minutes of inactivity should the instance be terminated. Example values 1m, 10m, 3h. Default is 3m. Providing "0" uses the organization's default inactivity timeout.
    - `hardTimeout` string, duration — After how many minutes should the instance be terminated. Example values 1m, 10m, 3h. Default is "0" which means no hard timeout.
    - `sandbox` SandboxSpec
      - `playwrightAndroid` object
        - `enabled` boolean
        - `version` '1.56.1-lim.1' | '1.60.0-lim.1'
    - `initialAssets` object[]
      - `kind` 'App' | 'Configuration', required
      - `configuration` object
        - `kind` 'ChromeFlag', required
        - `chromeFlag` 'enable-command-line-on-non-rooted-devices@1'
      - `source` 'URL' | 'URLs' | 'AssetName' | 'AssetNames' | 'AssetIDs'
      - `url` string
      - `assetName` string
      - `urls` string[]
      - `assetNames` string[]
      - `assetIds` string[]

## Response `200`

OK

- AndroidInstance
  - `metadata` object, required
    - `id` string, required
    - `displayName` string
    - `organizationId` string, required
    - `createdAt` string, date-time, required
    - `terminatedAt` string, date-time
    - `labels` object
  - `spec` object, required
    - `region` string, required — The region where the instance will be created. If not given, will be decided based on scheduling clues and availability.
    - `inactivityTimeout` string, duration, required — After how many minutes of inactivity should the instance be terminated. Example values 1m, 10m, 3h. Default is 3m. Providing "0" uses the organization's default inactivity timeout.
    - `hardTimeout` string, duration — After how many minutes should the instance be terminated. Example values 1m, 10m, 3h. Default is "0" which means no hard timeout.
  - `status` object, required
    - `state` 'unknown' | 'creating' | 'assigned' | 'ready' | 'terminated', required
    - `apiUrl` string
    - `adbWebSocketUrl` string
    - `endpointWebSocketUrl` string
    - `signedStreamUrl` string
    - `mcpUrl` string
    - `targetHttpPortUrlPrefix` string
    - `token` string, required
    - `sandbox` AndroidSandboxStatus
      - `playwrightAndroid` object
        - `url` string
    - `errorMessage` string

## Other responses

- `default` — Error

## Changes

- **2026-06-17** `5dcf286b3388` — 1 info
  - added the new optional request property `spec/sandbox/playwrightAndroid/version`
- **2026-04-22** `68cf01d361fc` — 1 info
  - added the optional property `status/signedStreamUrl` to the response with the `200` status
- **2026-04-10** `863e69fb7be0` — 1 info
  - added the optional property `status/apiUrl` to the response with the `200` status
- **2026-03-20** `98f98bdf1eaa` — 1 info
  - added the optional property `status/mcpUrl` to the response with the `200` status
- **2025-12-15** `81ebcc39139f` — 1 info
  - added the optional property `status/errorMessage` to the response with the `200` status

[Full history](https://skmtc.dev/limrun-inc/apis/limrun-api/changes/v1/android_instances/post.md)

---

[API](https://skmtc.dev/limrun-inc/apis/limrun-api.md) · [All operations](https://skmtc.dev/limrun-inc/apis/limrun-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/limrun-inc/limrun-api/revisions/22b815649ef7/schema)
