# Obtener detalles del teléfono en la nube por AndroidId

Busca un Cloud Phone por el Android ID que informa el dispositivo.
- **Efecto**: ninguno. Solo lectura. Es seguro reintentar con retroceso acotado. El teléfono no necesita estar encendido.
- **Devuelve**: la misma estructura de detalle que `/cloudphone/info`.
- **Casos límite**: un `androidId` vacío devuelve éxito con `data` a null en lugar de un error de validación, y si varios teléfonos comparten un Android ID se devuelve uno de ellos de forma arbitraria.

Endpoint: POST /cloudphone/queryByAndroidId
Version: 2026-09-05
Security: Authorization

## Security:

  - `Authorization` (unknown)
    http bearer JWT

## Request fields (application/json):

  - `androidId` (string, required)
    androidId del teléfono en la nube
    Example: 8f7e6d5c4b3a2f1e

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `code` (integer, required)
    Example: 0

  - `msg` (string | null, required)
    Example: null

  - `data` (object, required)

  - `data.id` (string, required)

  - `data.androidId` (string)
    android id del teléfono en la nube

  - `data.gaid` (string)
    gaid del teléfono en la nube

  - `data.envName` (string, required)

  - `data.groupId` (string, required)

  - `data.groupName` (string | null)
    Nombre del grupo. Null cuando el teléfono en la nube no pertenece a ningún grupo

  - `data.skuId` (string, required)

  - `data.tagInfos` (array, required)
    Detalles de las etiquetas. Array vacío cuando no hay etiquetas asignadas

  - `data.tagInfos.id` (string, required)
    ID de la etiqueta

  - `data.tagInfos.tagName` (string, required)
    Nombre de la etiqueta

  - `data.billingType` (integer, required)

  - `data.proxyStatus` (integer, required)

  - `data.settings` (object, required)

  - `data.settings.automaticGeo` (boolean, required)

  - `data.settings.automaticLocation` (boolean, required)

  - `data.settings.automaticLanguage` (boolean, required)

  - `data.settings.longitude` (number | null, required)

  - `data.settings.latitude` (number | null, required)

  - `data.device` (object, required)

  - `data.device.server` (string | null, required)

  - `data.device.countryName` (string, required)

  - `data.device.rom` (integer, required)

  - `data.device.wifiBssid` (string | null, required)

  - `data.device.bluetoothMac` (string, required)

  - `data.proxy` (object, required)

  - `data.proxy.id` (string, required)

  - `data.proxy.proxyName` (string, required)

  - `data.proxy.state` (string | null)
    Estado o provincia del proxy. Se prioriza la ubicación detectada de la IP de salida y después la configurada; puede ser null o una cadena vacía.
    Example: California

  - `data.proxy.city` (string | null)
    Ciudad del proxy. Se prioriza la ubicación detectada de la IP de salida y después la configurada; puede ser null o una cadena vacía.
    Example: Los Angeles

  - `data.proxy.proxyPort` (integer | null)
    Puerto de conexión del proxy; no se deduce del nombre. Puede ser null si no está disponible.
    Example: 1080

  - `data.proxy.proxyIp` (string, required)

  - `data.lastStartMemberId` (string, required)

  - `data.lastStartMemberName` (string | null, required)

  - `data.lastStartDate` (string, required)

  - `data.lastConnectMemberId` (string, required)

  - `data.lastConnectMemberName` (string | null, required)

  - `data.lastConnectDate` (string, required)

  - `data.envStatus` (integer, required)

  - `data.abnormalStatus` (integer, required)

  - `data.expireTime` (string, required)

  - `data.envRemark` (string, required)

  - `data.createMember` (string, required)

  - `data.updateMember` (string, required)

  - `data.updateDate` (string, required)

  - `data.createDate` (string, required)

  - `data.createMemberName` (string | null, required)

  - `requestId` (string, required)
    Example: 4d0f4fa68613441e9a11446a6437bb5a

