> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobilerun.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Wait for device to be ready

> Blocks until the device reaches the ready state, then returns the same payload as Get device info. The call returns early with an error if the wait is cancelled or times out.



## OpenAPI

````yaml /api-reference/phones.yaml get /devices/{deviceId}/wait
openapi: 3.1.0
info:
  title: Phones
  version: v1
servers:
  - url: https://api.mobilerun.ai
    description: Droidrun Cloud API
security:
  - bearerAuth: []
paths:
  /devices/{deviceId}/wait:
    get:
      tags:
        - Devices
      summary: Wait for device to be ready
      description: >-
        Blocks until the device reaches the ready state, then returns the same
        payload as Get device info. The call returns early with an error if the
        wait is cancelled or times out.
      operationId: wait-for-device-ready
      parameters:
        - in: path
          name: deviceId
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceInfo'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Mobilerun from '@mobilerun/sdk';

            const client = new Mobilerun({
              apiKey: process.env['MOBILERUN_CLOUD_API_KEY'], // This is the default and can be omitted
            });

            const device = await client.devices.waitReady('deviceId');

            console.log(device.id);
        - lang: Python
          source: |-
            import os
            from mobilerun_sdk import Mobilerun

            client = Mobilerun(
                api_key=os.environ.get("MOBILERUN_CLOUD_API_KEY"),  # This is the default and can be omitted
            )
            device = client.devices.wait_ready(
                "deviceId",
            )
            print(device.id)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/stainless-sdks/droidrun-cloud-go\"\n\t\"github.com/stainless-sdks/droidrun-cloud-go/option\"\n)\n\nfunc main() {\n\tclient := mobileruncloud.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tdevice, err := client.Devices.WaitReady(context.TODO(), \"deviceId\")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", device.ID)\n}\n"
        - lang: CLI
          source: |-
            mobilerun-cloud devices wait-ready \
              --api-key 'My API Key' \
              --device-id deviceId
components:
  schemas:
    DeviceInfo:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://example.com/schemas/DeviceInfo.json
          format: uri
          readOnly: true
          type: string
        activeTaskId:
          type: string
        assignedAt:
          format: date-time
          type:
            - string
            - 'null'
        billingStrategy:
          type: string
        createdAt:
          format: date-time
          type: string
        createdBy:
          type: string
        id:
          type: string
        name:
          type: string
        ownerId:
          type: string
        providerId:
          type: string
        state:
          type: string
        stateMessage:
          type: string
        streamToken:
          type: string
        streamUrl:
          type: string
        taskCount:
          format: int64
          type: integer
        terminatesAt:
          format: date-time
          type:
            - string
            - 'null'
        type:
          type: string
        updatedAt:
          format: date-time
          type: string
        userId:
          deprecated: true
          description: 'Deprecated: use ownerId/createdBy.'
          type: string
      required:
        - id
        - name
        - state
        - stateMessage
        - streamUrl
        - type
        - createdAt
        - updatedAt
        - assignedAt
        - terminatesAt
        - taskCount
        - activeTaskId
      type: object
    ErrorModel:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://example.com/schemas/ErrorModel.json
          format: uri
          readOnly: true
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Opaque
      description: Bearer token via Authorization header

````